package com.farewell.hotel.mapper;

import com.farewell.hotel.entity.InfoSearch;
import com.farewell.hotel.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author Farewell
 * @date 2021/4/21
 */
@Repository
public interface UserMapper {

    /**
     * 通过账户密码验证用户
     *
     * @param username 用户名
     * @param pwd      密码
     * @return 用户对象
     */
    User findByPwd(@Param("username") String username, @Param("pwd") String pwd);

    /**
     * 条件(可空)查询用户
     *
     * @param userInfoSearch 条件实体
     * @return User集合
     */
    List<User> findSystemUserByLimit(@Param("userInfoSearch") InfoSearch userInfoSearch);

    /**
     * 通过id更新用户的使用状态
     *
     * @param userId 用户主键
     * @param flag   使用状态 true:使用;false:禁用
     */
    void updateSystemUserStatus(@Param("userId") Long userId, @Param("flag") Boolean flag);

    /**
     * 添加一个User
     *
     * @param user user对象
     */
    void addSystemUser(@Param("user") User user);

    /**
     * 通过id删除一个User
     *
     * @param userId 用户id主键
     */
    void deleteSystemUser(@Param("userId") Long userId);
}
